﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;

namespace Vtron.LEDCorrective.Domain.LEDSender
{
    /// <summary>
    /// 扫描属性
    /// </summary>
    /// <remarks>
    /// struct _scp_scan_t
    /// {
    ///    u_int16_t		clkFreqDivCtrl;	/*时钟分频控制，0~47，默认值为3*/	
    ///    u_int16_t		scanLines;	/*扫描线数，1 表示静态扫描，2表示1/2动态扫描，4表示1/4动态扫描，8 表示1/8动态扫描，16 表示1/16动态扫描*/
    ///    u_int16_t		minFieldWidth;/*最小子场宽度，默认值为665*/
    //     u_int16_t		minOEWidth;	/*最小OE宽度*/
    ///    u_int16_t		scanFieldIntervalClkNum;/*LED扫描的子场间隔时钟数*/
    ///    u_int16_t		grayLevel;	/*灰度级数，0~16，默认值为12*/
    ///    u_int16_t		lumiMode;	/*亮度模式，0/1/2分别表示低亮/正常/高亮，默认值为1*/
    ///    u_int16_t		lumiLevel;	/*亮度级数，0~16，默认值为10*/
    ///    u_int16_t		minPluseDelta;/*最小脉冲宽增量*/
    ///    u_int16_t		ledComWidth;	/*LED端口宽度（列数/移位宽度），1~128，默认值为96*/
    ///    u_int16_t		ledVerComNum;/*LED垂直端口数，1~20，默认值为12*/
    ///    u_int16_t		lineBlankTime;/*行消隐时间*/
    ///    u_int16_t		scanMode;	/*扫描模式，0表示从左到右，1表示从右到左*/
    ///    u_int16_t		clipBeginX;	/*单元剪切的起始行坐标*/
    ///    u_int16_t		clipBeginY;	/*单元剪切的起始列坐标*/
    ///    u_int16_t		clipEndX;		/*单元剪切的结束行坐标*/
    ///    u_int16_t		clipEndY;		/*单元剪切的结束列坐标*/
    ///    u_int16_t		reserved;		/*保留字段*/
    /// }PACKED;
    /// typedef struct _scp_scan_t		SCP_SCAN_t;
    /// </remarks>
    [Serializable]
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct SCP_SCAN_T
    {
        /// <summary>
        /// 时钟分频控制
        /// </summary>
        public UInt16 clkFreqDivCtrl;

        /// <summary>
        /// 扫描线数
        /// </summary>
        public UInt16 scanLines;

        /// <summary>
        /// 最小子场宽度
        /// </summary>
        public UInt16 minFieldWidth;

        /// <summary>
        /// 最小OE宽度
        /// </summary>
        public UInt16 minOEWidth;

        /// <summary>
        /// LED扫描的子场间隔时钟数
        /// </summary>
        public UInt16 scanFieldIntervalClkNum;

        /// <summary>
        /// 灰度级数
        /// </summary>
        public UInt16 grayLevel;

        /// <summary>
        /// 亮度模式
        /// </summary>
        public UInt16 lumiMode;

        /// <summary>
        /// 亮度级数
        /// </summary>
        public UInt16 lumiLevel;

        /// <summary>
        /// 最小脉冲宽增量
        /// </summary>
        public UInt16 minPluseDelta;

        /// <summary>
        /// LED端口宽度
        /// </summary>
        public UInt16 ledComWidth;

        /// <summary>
        /// LED垂直端口数
        /// </summary>
        public UInt16 ledVerComNum;

        /// <summary>
        /// 行消隐时间
        /// </summary>
        public UInt16 lineBlankTime;

        /// <summary>
        /// 扫描模式
        /// </summary>
        public UInt16 scanMode;

        /// <summary>
        /// 单元剪切的起始行坐标
        /// </summary>
        public UInt16 clipBeginX;

        /// <summary>
        /// 单元剪切的起始列坐标
        /// </summary>
        public UInt16 clipBeginY;

        /// <summary>
        /// 单元剪切的结束行坐标
        /// </summary>
        public UInt16 clipEndX;

        /// <summary>
        /// 单元剪切的结束列坐标
        /// </summary>
        public UInt16 clipEndY;

        /// <summary>
        /// 保留字段
        /// </summary>
        public UInt16 reserved;
    }
}
